home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_pcdp / ada / mesem.ada < prev    next >
Text File  |  1996-01-30  |  735b  |  43 lines

  1. with Text_IO; use Text_IO;
  2. with Semaphore_Package; use Semaphore_Package;
  3. procedure MESEM is
  4.  
  5.   S: Semaphore := Init(1);
  6.  
  7.   task T1;
  8.   task body T1 is
  9.   begin
  10.     loop
  11.       Put_Line("Task 1 is idling");
  12.       Wait(S);
  13.       Put_Line("Task 1 critical section");
  14.       Signal(S);
  15.     end loop;
  16.   end T1;
  17.  
  18.   task T2;
  19.   task body T2 is
  20.   begin
  21.     loop
  22.       Put_Line("Task 2 is idling");
  23.       Wait(S);
  24.       Put_Line("Task 2 critical section");
  25.       Signal(S);
  26.     end loop;
  27.   end T2;
  28.  
  29.   task T3;
  30.   task body T3 is
  31.   begin
  32.     loop
  33.       Put_Line("Task 3 is idling");
  34.       Wait(S);
  35.       Put_Line("Task 3 critical section");
  36.       Signal(S);
  37.     end loop;
  38.   end T3;
  39.  
  40. begin
  41.   null;
  42. end MESEM;
  43.